let mysql = require('mysql');//引入mysql模块
var databaseConfig = require('./mysql.config');  //引入数据库配置模块中的数据

//向外暴露方法
module.exports = {
    query: function (sql, callback) {
        //每次使用的时候需要创建链接，数据操作完成之后要关闭连接
        var connection = mysql.createConnection(databaseConfig);

        connection.connect(function (err) {
            if (err) {
                callback && callback(err, '数据库连接失败');
                return
            }
            //开始数据操作
            //传入三个参数，第一个参数sql语句，第二个参数sql语句中需要的数据，第三个参数回调函数
            connection.query(sql, function (err, results) {
                if (err) {
                    console.log("debug log 是是是--> ", err)
                    let messageError = '';
                    if (err.errno == 1048) {
                        messageError = '参数不能为空'
                    } else if (err.errno == 1062) {
                        messageError = '数据已存在'
                    } else if (err.errno == 1265) {
                        messageError = '格式错误'
                    } else if (err.errno == 1327) {
                        messageError = '参数不能为空'
                    }
                    else {
                        messageError = '请求失败'
                    }
                    callback && callback(err, messageError);
                    return
                }
                //将查询出来的数据返回给回调函数
                callback && callback(err, results);
                //results作为数据操作后的结果，fields作为数据库连接的一些字段
                //停止链接数据库，必须再查询语句后，要不然一调用这个方法，就直接停止链接，数据操作就会失败
                connection.end(function (err) {
                    if (err) {
                        console.log('关闭数据库连接失败！');
                        return
                    }
                });
            });
        });

    }
};